﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Ninject;
using PGE.AfastamentosTempMVC.Modelo;
using PGE.AfastamentosTempMVC.Servico.Interfaces;
using PGE.AfastamentosTempMVC.Repositorio.Interfaces;

namespace PGE.AfastamentosTempMVC.Servico.Implementacao
{
    public class FuncionarioServico : IFuncionarioServico
    {
        [Inject]
        public IFuncionarioRepositorio FuncionarioRepositorio { get; set; }

        #region IFuncionarioServico Members

        void IFuncionarioServico.Adicionar(Funcionario funcionario)
        {
            FuncionarioRepositorio.Adicionar(funcionario);
        }

        void IFuncionarioServico.Editar(Funcionario funcionario)
        {
            FuncionarioRepositorio.Editar(funcionario);
        }

        void IFuncionarioServico.Deletar(Funcionario funcionario)
        {
            FuncionarioRepositorio.Deletar(funcionario);
        }

        void IFuncionarioServico.DeletarMuitos(Func<Funcionario, bool> where)
        {
            FuncionarioRepositorio.DeletarMuitos(where);
        }

        Funcionario IFuncionarioServico.ObterPorID(int Id)
        {
            return FuncionarioRepositorio.ObterPorID(Id);
        }

        Funcionario IFuncionarioServico.ObterPornome(Func<Funcionario, bool> where)
        {
            return FuncionarioRepositorio.ObterPornome(where);
        }

        Funcionario IFuncionarioServico.ObterPrimeiro()
        {
            return FuncionarioRepositorio.ObterPrimeiro();
        }

        Funcionario IFuncionarioServico.ObterPrimeiro(Func<Funcionario, bool> where)
        {
            return FuncionarioRepositorio.ObterPrimeiro(where);
        }

        IEnumerable<Funcionario> IFuncionarioServico.ListarTudo()
        {
            return FuncionarioRepositorio.ListarTudo();
        }

        IQueryable<Funcionario> IFuncionarioServico.GetQueryable()
        {
            return FuncionarioRepositorio.GetQueryable();
        }

        IEnumerable<Funcionario> IFuncionarioServico.ListarMuitos(Func<Funcionario, bool> where)
        {
            return FuncionarioRepositorio.ListarMuitos(where);
        }

        #endregion
    }
}
